/**
 * 
 * @param {url} url 
 * @param {params} params 
 * @param {headers} headers 
 * @returns 
 */
function get(url,params,headers={}){
    const p =new Promise((resolve,reject)=>{
        const xhr = new XMLHttpRequest;
        let temp=[];
        for(let key in params){
            temp.push(`${key}=${params[key]}`)
        }
        xhr.open('get',`${url}?${temp.join('&')}`);
        xhr.onreadystatechange = ()=>{
            if(xhr.readyState === 4){
                if(xhr.status === 200){
                    let res = JSON.parse(xhr.responseText);
                    resolve(res);
                }else{
                    reject(xhr.status);
                }
            }
        }
        for(let key in headers){
            xhr.setRequestHeader(key,headers[key]);
        }
        xhr.send();
    })
    return p;
}

//-------------------------------------------------------------------------------------------
function post(url,params,headers={}){
    const p =new Promise((resolve,reject)=>{
        let xhr = new XMLHttpRequest;
        xhr.open('post',url);
        xhr.onreadystatechange = ()=>{
            if(xhr.readyState===4){
                if(xhr.status===200){
                    let res = JSON.parse(xhr.responseText);
                    resolve(res);
                }else{
                    reject(xhr.status);
                }
            }
        }
        xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
        for(let key in headers){
            xhr.setRequestHeader(key,headers[key])
        }
        let temp =[];
        for(let key in params){
            temp.push(`${key}=${params[key]}`)
        }
        xhr.send(temp.join('&'));
    })
    return p;
}